export class CommandBase {
    tags: string[];
    name: string;
    detail: string;
    docs: string;
    insert: string;
    mode: number;

    constructor() {
        this.name = "";
        this.detail = "";
        this.docs = "";
        this.insert = "";
        this.tags = [];
        this.mode = 1;
    }

    toValue() {
        return { name: this.name, detail: this.detail, insert: this.insert, docs: this.docs, tips: this.tags }
    }
}

export class CommandCheck extends CommandBase {
    constructor() {
        super()
        this.tags = ['检查', '如果', "if"];
    }
}

export class CommandMoveTo extends CommandBase {
    constructor() {
        super()
        this.tags = ["寻路", "寻找", "前往"];
    }
}

export class CommandTransmit extends CommandBase {
    constructor() {
        super()
        this.tags = ["传送", "飞"];
    }
}

export class CommandItem extends CommandBase {
    constructor() {
        super()
        this.tags = ["物品", "道具"];
    }
}

export class CommandTalkTo extends CommandBase {
    constructor() {
        super()
        this.tags = ["对话"];
    }
}

export class CommandTask extends CommandBase {
    constructor() {
        super()
        this.tags = ["任务"];
    }
}

export class CommandTeam extends CommandBase {
    constructor() {
        super()
        this.tags = ["队伍"];
    }
}

export class CommandWarehouse extends CommandBase {
    constructor() {
        super()
        this.tags = ["仓库"];
    }
}

export class CommandHandle extends CommandBase {
    constructor() {
        super()
        this.tags = ["操作"];
    }
}

export class CommandPet extends CommandBase {
    constructor() {
        super()
        this.tags = ["宠物"];
    }
}

export class CommandAccount extends CommandBase {
    constructor() {
        super()
        this.tags = ["账号"];
    }
}

export class CommandMap extends CommandBase {
    constructor() {
        super()
        this.tags = ["m", "M"];
    }
}

export class CommandEquip extends CommandBase {
    constructor() {
        super()
        this.tags = ["e", "E"];
    } 
}

export class CommandWeapon extends CommandEquip {
    constructor() {
        super()
        this.tags = ["武器"];
        this.mode = 2;
    }
}

export class CommandArmor extends CommandEquip {
    constructor() {
        super()
        this.tags = ["防具"];
    }
}

export class CommandJewelry extends CommandEquip {
    constructor() {
        super()
        this.tags = ["首饰", "饰品"];
    }
}

export class CommandMonster extends CommandBase {
    constructor() {
        super()
        this.tags = ["r", "R"];
    } 
}